package com.mobibusbr.webservices;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mobibusbr.model.Cidade;


@Path("/getCidade")
public class WebServiceServer {

	@GET
	@Produces("application/json")
	public Response recebe(){
		Cidade cidade = new Cidade();
		cidade.setBairro("Guara");
		cidade.setCidade("Brasilia");
		cidade.setUf("DF");
		
		GsonBuilder buildJson = new GsonBuilder();
		Gson json = buildJson.create();

		String a = json.toJson(cidade);
		return Response.status(200).entity(a).build();
		
	}
	
	@POST
	@Path("/post")
	@Produces("application/json")
	public Response devolveCidade(String obj){
		Cidade cidade = new Cidade();
		cidade = (Cidade) montaObjectJson(obj,Cidade.class);
		
		String result = "Cidade: " + cidade.getCidade()+" criada com sucesso";
        return Response.status(201).entity(result).build();

	}
	
	public String montaJsonFormato(Object obj){
		GsonBuilder buildJson = new GsonBuilder();
		Gson json = buildJson.create();
		return json.toJson(obj);
		
	}
	
	public Object montaObjectJson(String json,Class<?> entity){
		GsonBuilder builder = new GsonBuilder();
		Gson gson = builder.create();
		Object obj = gson.fromJson(json, entity);
		return obj;
	}
	
}
